#ifndef GAMEKIT_DRAWING_IMAGE_H
#define GAMEKIT_DRAWING_IMAGE_H

#include <string>

#include "gamekit/gamekit.h"
#include "gamekit/common/SharedPointer.h"
#include "gamekit/drawing/Color.h"

namespace gamekit
{
	class Window;
	
	class GK_API Bitmap
	{
	public:
		~Bitmap(void);

		ushort width(void) const;
		ushort height(void) const;
		ushort bpp(void) const;
		ubyte* data(void) const;
		Color  pixel(const ushort& x, const ushort& y) const;

		static SharedPointer<Bitmap> load(const std::string& file);

	private:
		Bitmap(const ushort& width, const ushort& height, const ushort& bpp);

	private:
		ushort m_width;
		ushort m_height;
		ushort m_bpp;
		ubyte* m_data;
	};
}

#endif
